﻿using System;
using System.Collections;
using System.Collections.Generic;

namespace SBPweb.PROvibe.Server.Framework.Utilities.Collections
{

    public interface IOverridableDictionary<TKey, TValue> : IDictionary<TKey, TValue>
    {

        void BeginInitialization();

        void EndInitialization();

        event EventHandler InitializationBegin;

        event EventHandler InitializationEnd;

        event EventHandler<DictionaryItemEventArgs<TKey, TValue>> ItemAdded;

        event EventHandler<DictionaryItemEventArgs<TKey, TValue>> ItemChanged;

        event EventHandler<DictionaryItemEventArgs<TKey, TValue>> ItemRemoved;


    }

}
